Socket Connection
In order to connect the user and the doctor
there should be a channel that reflects the status update of the consultation,
So we have the Pusher.
Pusher
For initiating the socket, there is a needed data, It is already included in the consultation data
import 'package:altibbi/pusher.dart';
Pusher().init(
onEvent: onEvent,
channelName: "pusher_channel_name", // retrun from the consultation api
apiKey: "pusher_api_key" // retrun from the consultation api
);
Use Pusher Service To Listen To Consultation Event Initializing the Pusher Service:
void onEvent(event) async {
print("event Name = " + event.eventName);
}
Next Step (Move to Consultation)
On listening to the events, the event call-status reflects the status of the consultation,
So you need to check the consultation data on event listener and call getConsultationInfo to check the config of the consultation
and once the consultation status is in_progress and the config is ready you can move to the consultation screen
For Chat consultation the data will include the chatConfig object
For Voip consultations the data will include the voipConfig object
For Video consultations the data will include the videoConfig object
Config Classes
class ChatConfig {
int? id;
int? consultationId;
String? groupId;
String? chatUserId;
String? appId;
String? chatUserToken;
ChatConfig({
this.id,
this.consultationId,
this.groupId,
this.appId,
this.chatUserId,
this.chatUserToken,
});
}
For Both, voipConfig and videoConfig
class VoipConfig {
int? id;
int? consultationId;
String? apiKey;
String? callId;
String? token;
VoipConfig({
this.id,
this.consultationId,
this.apiKey,
this.callId,
this.token,
});
}